package com.hwpt.hwaccount.core.data.remote.api;



import com.hwpt.hwaccount.core.data.remote.request.FeedbackRequest;
import com.hwpt.hwaccount.core.data.remote.request.PwdLoginRequest;
import com.hwpt.hwaccount.core.data.remote.request.RegisterRequest;
import com.hwpt.hwaccount.core.data.remote.request.ResetPasswordRequest;
import com.hwpt.hwaccount.core.data.remote.request.SendCodeRequest;
import com.hwpt.hwaccount.core.data.remote.request.SyncInfoRequest;
import com.hwpt.hwaccount.core.data.remote.request.VerifyCodeRequest;
import com.hwpt.hwaccount.core.base.BaseResponse;
import com.hwpt.hwaccount.core.data.remote.response.UserInfoResponse;

import java.util.List;

import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.POST;
import retrofit2.http.PUT;


public interface ApiService {
    //发送验证码
    @POST("user/verifyCode/send")
    Call<BaseResponse<Void>> sendVerifyCode(@Body SendCodeRequest request);

    //验证验证码
    @POST("user/verifyCode/verify")
    Call<BaseResponse<Void>> verifyCode(@Body VerifyCodeRequest request);

    //注册
    @POST("user/auth/register")
    Call<BaseResponse<Void>> register(@Body RegisterRequest request);

    //账密登录
    @POST("user/auth/login/password")
    Call<BaseResponse<UserInfoResponse>> loginWithPwd(@Body PwdLoginRequest request);

    //验证码登录
    @POST("user/auth/login/sms")
    Call<BaseResponse<UserInfoResponse>> loginWithVerifyCode(@Body VerifyCodeRequest request);

    //同步用户
    @PUT("user/info/sync")
    Call<BaseResponse<Void>> syncUser(@Body SyncInfoRequest user);

    //重置密码
    @PUT("user/auth/resetPassword")
    Call<BaseResponse<Object>> resetPassword(@Body ResetPasswordRequest request);

    @POST("user/feedback/submitFeedback")
    Call<BaseResponse<List<String>>> submitFeedback(@Body FeedbackRequest request);
}